第4.3节 模型的改善与返回(过拟合)
各位朋友大家好,欢迎来到月来客栈,我是掌柜空字符。
本期推送内容目录如下,如果你觉得本期内容对你所有帮助欢迎点个赞、关个注、下回更新不迷路。
4.3过拟合 4.3.1模型拟合 4.3.2 过拟合与欠拟合 4.3.3 解决欠拟合与过拟合问题 4.3.4 小结
4.3过拟合
4.3.1模型拟合
在4.2节中,笔者介绍了为什么要对特征维度进行标准化,以及不进行标准化会带来什么样的后果。接下来,笔者继续介绍其他的改善模型的方法和策略。
在2.5节内容中,笔者首次引入了梯度下降算法,以此来最小化线性回归中的目标函数,并且在经过多次迭代后便可以得到模型中对应的参数。此时可以发现,模型的参数是一步一步根据梯度下降算法更新而来,直至目标函数收敛,也就是说这是一个循序渐进的过程,因此,这一过程也被称作拟合(Fitting)模型参数的过程,当这个过程执行结束后就会产生多种拟合后的状态,例如过拟合(Overfitting)和欠拟合(Underfitting)等。
在线性回归中笔者介绍了几种评估回归模型常用的指标,但现在有一个问题:当MAE或者RMSE越小时就代表模型越好吗?还是说在某种条件下其越小就越好呢?细心的读者可能一眼便明了,肯定是有条件下的越小所对应的模型才越好。那这其中到底是怎么回事呢?
假设现在有一批样本点,它本是由函数生成(现实中并不知道)的,但由于其他因素的缘故,使我们得到的样本点并没有准确地落在曲线上,而是分布在其附近,如图4-13所示。
从图4-14中可以看出,随着多项式次数的增大,指标的值也越来越大(的值越大预示着模型就越好),并且当次数设置为10的时候,达到了1.0,但是最后就应该选degree=10对应的这个模型吗?
假如不知过了多久,突然一名客户要买你的这个模型进行商业使用,同时客户为了评估这个模型的效果自己又带来了一批新的含标签的数据(虽然这个模型已经用测试过,但客户并不会完全相信,万一你对这个模型作弊呢)。于是你拿着客户的新数据(也是由所生成的),然后分别用上面的3个模型进行预测,并得到了如图4-15所示的可视化结果。
如图4-15所示,各个曲线表示根据新样本预测值绘制得到的结果。此时令你感到奇怪的是,为什么当degree=5时的结果居然会好于degree=10时模型的结果,问题出在哪里?其原因在于,当第1次通过这12个样本点进行建模时,为了尽可能地使“模型好(表现形式为尽可能大)”而使用了非常复杂的模型,尽管最后每个训练样本点都“准确无误”地落在了预测曲线上,但是这却导致最后模型在新数据上的预测结果严重地偏离了其真实值。